package w83b.w83bDAO;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import w83b.util.jdbc.W83bDataBase;
import w83b.w83bBeans.W83bDatosMinisterioBean;
import w83b.w83bDAO.w83bConstantesBD.W83bActasBD;
import w83b.w83bDAO.w83bConstantesBD.W83bDatosMinisterioBD;
import w83b.w83bUtilidadesComunes.W83bClsConstantes;

// TODO: Auto-generated Javadoc
/**
 * The Class W83bDatosMinisterioDAO.
 * @author a
 */
public class W83bDatosMinisterioDAO implements W83bIDatosMinisterioDAO{
	
	
	/**
	 * comprobarDatosMinisterio.
	 * 
	 * @param param the new parametro
	 * @return List the new baja
	 * @throws Exception the exception
	 */
public java.util.List comprobarDatosMinisterio(w83b.w83bBeans.W83bDatosMinisterioBean param) throws Exception{
		
		
		StringBuffer strSql = new StringBuffer(W83bClsConstantes.CUARENTA);
		List params = new ArrayList();
		List resultado = new ArrayList();
		String mes="";
		String anyo="";
		String fechaResultado = param.getFechaResultado();
		String formato="";
		if ("es".equals(param.getIdioma())){
			mes = fechaResultado.substring(W83bClsConstantes.TRES,W83bClsConstantes.CINCO);
			anyo = fechaResultado.substring(W83bClsConstantes.SEIS,W83bClsConstantes.DIEZ);
			formato="dd/MM/yyyy";
		}
		else{
			mes = fechaResultado.substring(W83bClsConstantes.CINCO,W83bClsConstantes.SIETE);
			anyo = fechaResultado.substring(0,W83bClsConstantes.CUATRO);
			formato="yyyy/MM/dd/";
		}
		
		strSql.append("SELECT ").append(W83bDatosMinisterioBD.CIERRE_01_042).append(", ");
		strSql.append(W83bDatosMinisterioBD.CIERRE_20_042).append(", ").append(W83bDatosMinisterioBD.CIERRE_48_042);		
		strSql.append(" FROM ").append(W83bDatosMinisterioBD.cierreView).append(" WHERE ");		
		strSql.append(W83bDatosMinisterioBD.MES_CIERRE_042).append("=").append(mes).append(" AND ");
		strSql.append(W83bDatosMinisterioBD.ANO_CIERRE_042).append("=").append(anyo).append(" AND ");
		strSql.append(W83bDatosMinisterioBD.CIERRE_01_042).append("= 'S'").append(" AND ").append(W83bDatosMinisterioBD.CIERRE_20_042).append("= 'S'");
		strSql.append(" AND ").append(W83bDatosMinisterioBD.CIERRE_48_042).append("= 'S'");
		
		List cierre = W83bDataBase.executeQuery(strSql.toString(),params,W83bDatosMinisterioBean.class,param.getUsuarioBean(), null);
		
		if (cierre.isEmpty()){
			return cierre;
		}else{
			strSql.delete(0, strSql.length()); 
			strSql.append(" SELECT  ").append("VISTA.").append(W83bDatosMinisterioBD.N_ACTA_016).append(",VISTA.").append(W83bDatosMinisterioBD.CCIF_001);
			strSql.append(", VISTA.").append(W83bDatosMinisterioBD.RSOC_001).append(",VISTA.").append(W83bDatosMinisterioBD.CNAE93_001);
			strSql.append(", VISTA.").append(W83bDatosMinisterioBD.MUNIC_001).append(",VISTA.").append(W83bDatosMinisterioBD.C_CONV_016);
			strSql.append(", VISTA.").append(W83bDatosMinisterioBD.TOTELEC_016).append(",VISTA.").append(W83bDatosMinisterioBD.C_TERRIT_016);
			strSql.append(", VISTA.").append(W83bDatosMinisterioBD.N_REGDEF_016).append(",TO_CHAR(").append("VISTA.").append(W83bDatosMinisterioBD.F_ELECC_016).append(",?) AS ");
			strSql.append(W83bDatosMinisterioBD.F_ELECC_016).append(",");
			strSql.append("VISTA.").append(W83bDatosMinisterioBD.C_SINDI_024).append(",");
			strSql.append("VISTA.").append(W83bDatosMinisterioBD.CMADRID_013).append(",");
			strSql.append("VISTA.").append(W83bDatosMinisterioBD.CEMPR_013).append(",VISTA.").append(W83bDatosMinisterioBD.ANO_ACTA_016);
			strSql.append(", VISTA.").append(W83bDatosMinisterioBD.DOMIC_001).append(" FROM ");
			strSql.append(W83bDatosMinisterioBD.W83BDATOSMINISTERIOACTAS).append(" VISTA ");
			strSql.append(" WHERE "); 
			strSql.append("VISTA.").append(W83bDatosMinisterioBD.FREGDEF_016).append(" <= TO_DATE('").append(param.getFechaRegistro());
			strSql.append("',?) AND (VISTA.").append(W83bDatosMinisterioBD.F_ELECC_016).append(" BETWEEN TO_DATE('");
			strSql.append(param.getFechaEleccion()).append("',?) AND TO_DATE('").append(param.getFechaEleccionHasta()).append("',?)) ");	
			strSql.append(" AND (VISTA.").append(W83bDatosMinisterioBD.f_baja_016).append(" IS  NULL OR VISTA.");
			strSql.append(W83bDatosMinisterioBD.f_baja_016).append(" > TO_DATE ('").append(param.getFechaEleccionHasta());
			strSql.append("', ?))");
			strSql.append(" AND ");
			strSql.append("VISTA.").append(W83bActasBD.versionActa);
			strSql.append("=(SELECT MAX(ACT.").append(W83bActasBD.versionActa).append(")");
			strSql.append(" FROM ");
			strSql.append(W83bDatosMinisterioBD.actas).append(" ACT WHERE (ACT.").append(W83bActasBD.fechaActualizacion).append("<=TO_DATE('");
			strSql.append(param.getFechaRegistro());
			strSql.append("',?)");
			strSql.append(" OR ");
			strSql.append("ACT.").append(W83bActasBD.fechaActualizacion).append(" IS NULL) AND ");
			strSql.append("ACT.").append(W83bActasBD.numActa).append("=VISTA.").append(W83bActasBD.numActa).append(" AND ");
			strSql.append("ACT.").append(W83bActasBD.anyoActa).append("=VISTA.").append(W83bActasBD.anyoActa).append(" AND ");
			strSql.append("ACT.").append(W83bDatosMinisterioBD.C_TERRIT_016).append("=VISTA.").append(W83bDatosMinisterioBD.C_TERRIT_016).append(" AND ");
			strSql.append("ACT.").append(W83bActasBD.validada).append("=1)");
			strSql.append(" ORDER BY VISTA.C_TERRIT_016, VISTA.FREGDEF_016,VISTA.N_REGDEF_016");
			params.add(formato);
			params.add(formato);
			params.add(formato);
			params.add(formato);
			params.add(formato);
			params.add(formato);
			List listadoActas = W83bDataBase.executeQuery(strSql.toString(),params,W83bDatosMinisterioBean.class,param.getUsuarioBean(), "primera");
			
			W83bDatosMinisterioBean elActa = new W83bDatosMinisterioBean();
			HashMap mapa1 = new HashMap();
			for(int i=0;i<listadoActas.size();i++){
				elActa = (W83bDatosMinisterioBean)listadoActas.get(i);
				mapa1.put(elActa.getTerritorio()+elActa.getAnyoActa()+elActa.getNumActa(), elActa);
			}
			
			resultado.add(mapa1);
			
			
			strSql.delete(0, strSql.length()); 
			strSql.append(" SELECT ").append(W83bDatosMinisterioBD.N_ACTA_016).append(",").append(W83bDatosMinisterioBD.C_TERRIT_016);
			strSql.append(",").append(W83bDatosMinisterioBD.ANO_ACTA_016).append(",").append(W83bDatosMinisterioBD.C_COLEG_044);
			strSql.append(",NVL(").append(W83bDatosMinisterioBD.ELEC_044).append(",0) AS ").append(W83bDatosMinisterioBD.ELEC_044);
			strSql.append(",NVL(").append(W83bDatosMinisterioBD.VOTA_044).append(",0) AS ").append(W83bDatosMinisterioBD.VOTA_044);
			strSql.append(",NVL(").append(W83bDatosMinisterioBD.PAP_VAL_044).append(",0) AS ").append(W83bDatosMinisterioBD.PAP_VAL_044);
			strSql.append(",NVL(").append(W83bDatosMinisterioBD.PAP_NUL_044).append(",0) AS ").append(W83bDatosMinisterioBD.PAP_NUL_044);
			strSql.append(",NVL(").append(W83bDatosMinisterioBD.PAP_BLA_044).append(",0) AS ").append(W83bDatosMinisterioBD.PAP_BLA_044);
			strSql.append(",SUM((NVL(").append(W83bDatosMinisterioBD.N_DELH_024);
			strSql.append(",0) + ").append("NVL(").append(W83bDatosMinisterioBD.N_DELM_024);
			strSql.append(",0))) AS ").append(W83bDatosMinisterioBD.N_DELH_024);
			strSql.append(",NVL(").append(W83bDatosMinisterioBD.N_VOTOS_024);
			strSql.append(",0) AS ").append(W83bDatosMinisterioBD.N_VOTOS_024);
			strSql.append(" FROM w83bdatosministeriocolegios VISTA");
			strSql.append(" WHERE ");
			strSql.append("VISTA.").append(W83bDatosMinisterioBD.FREGDEF_016).append(" <= TO_DATE('").append(param.getFechaRegistro());
			strSql.append("',?) AND (VISTA.").append(W83bDatosMinisterioBD.F_ELECC_016).append(" BETWEEN TO_DATE('");
			strSql.append(param.getFechaEleccion()).append("',?) AND TO_DATE('").append(param.getFechaEleccionHasta()).append("',?)) ");	
			strSql.append(" AND (VISTA.").append(W83bDatosMinisterioBD.f_baja_016).append(" IS  NULL OR VISTA.");
			strSql.append(W83bDatosMinisterioBD.f_baja_016).append(" > TO_DATE ('").append(param.getFechaEleccionHasta());
			strSql.append("', ?))");
			strSql.append(" AND ");
			strSql.append("VISTA.").append(W83bActasBD.versionActa);
			strSql.append("=(SELECT MAX(ACT.").append(W83bActasBD.versionActa).append(")");
			strSql.append(" FROM ");
			strSql.append(W83bDatosMinisterioBD.actas).append(" ACT WHERE (ACT.").append(W83bActasBD.fechaActualizacion).append("<=TO_DATE('");
			strSql.append(param.getFechaRegistro());
			strSql.append("',?)");
			strSql.append(" OR ");
			strSql.append("ACT.").append(W83bActasBD.fechaActualizacion).append(" IS NULL) AND ");
			strSql.append("ACT.").append(W83bActasBD.numActa).append("=VISTA.").append(W83bActasBD.numActa).append(" AND ");
			strSql.append("ACT.").append(W83bActasBD.anyoActa).append("=VISTA.").append(W83bActasBD.anyoActa).append(" AND ");
			strSql.append("ACT.").append(W83bDatosMinisterioBD.C_TERRIT_016).append("=VISTA.").append(W83bDatosMinisterioBD.C_TERRIT_016).append(" AND ");
			strSql.append("ACT.").append(W83bActasBD.validada).append("=1)");
			strSql.append(" GROUP BY ").append(W83bDatosMinisterioBD.N_ACTA_016).append(",").append(W83bDatosMinisterioBD.C_TERRIT_016);
			strSql.append(",").append(W83bDatosMinisterioBD.ANO_ACTA_016).append(",").append(W83bDatosMinisterioBD.C_COLEG_044);
			strSql.append(",").append(W83bDatosMinisterioBD.ELEC_044);
			strSql.append(",").append(W83bDatosMinisterioBD.VOTA_044);
			strSql.append(",").append(W83bDatosMinisterioBD.PAP_VAL_044);
			strSql.append(",").append(W83bDatosMinisterioBD.PAP_NUL_044);
			strSql.append(",").append(W83bDatosMinisterioBD.PAP_BLA_044);
			strSql.append(",").append(W83bDatosMinisterioBD.N_VOTOS_024);
			params=new ArrayList();
			params.add(formato);
			params.add(formato);
			params.add(formato);
			params.add(formato);
			params.add(formato);
			List listadoColegios = W83bDataBase.executeQuery(strSql.toString(),params,W83bDatosMinisterioBean.class,param.getUsuarioBean(), "segunda");
			W83bDatosMinisterioBean elColegio = new W83bDatosMinisterioBean();
			HashMap mapa2 = new HashMap();
		
			for(int i=0;i<listadoColegios.size();i++){
				elColegio = (W83bDatosMinisterioBean)listadoColegios.get(i);
				mapa2.put(elColegio.getColegio()+elColegio.getTerritorio()+elColegio.getAnyoActa()+elColegio.getNumActa(), elColegio);
			}
				
			resultado.add(mapa2);		
			
			strSql.delete(0, strSql.length()); 
			strSql.append("SELECT ").append(W83bDatosMinisterioBD.N_ACTA_016).append(",").append(W83bDatosMinisterioBD.C_TERRIT_016);
			strSql.append(",").append(W83bDatosMinisterioBD.ANO_ACTA_016).append(",").append(W83bDatosMinisterioBD.C_COLEG_024);
			strSql.append(",NVL (").append(W83bDatosMinisterioBD.N_VOTOS_024).append(" , 0) AS ").append(W83bDatosMinisterioBD.N_VOTOS_024);
			strSql.append(",(NVL (").append(W83bDatosMinisterioBD.N_DELH_024).append(" , 0) + ");
			strSql.append("NVL (").append(W83bDatosMinisterioBD.N_DELM_024).append(" , 0)) AS ").append(W83bDatosMinisterioBD.N_DELH_024);
			strSql.append(",").append(W83bDatosMinisterioBD.C_SINDI_024);
			strSql.append(",").append(W83bDatosMinisterioBD.CMADRID_019).append(" FROM w83bdatosministeriosind VISTA");
			strSql.append(" WHERE VISTA.");
			strSql.append(W83bDatosMinisterioBD.FREGDEF_016).append(" <= TO_DATE('").append(param.getFechaRegistro());
			strSql.append("',?)");
			strSql.append(" AND ");
			strSql.append("VISTA.").append(W83bActasBD.versionActa);
			strSql.append("=(SELECT MAX(ACT.").append(W83bActasBD.versionActa).append(")");
			strSql.append(" FROM ");
			strSql.append(W83bDatosMinisterioBD.actas).append(" ACT WHERE (ACT.").append(W83bActasBD.fechaActualizacion).append("<=TO_DATE('");
			strSql.append(param.getFechaRegistro());
			strSql.append("',?)");
			strSql.append(" OR ");
			strSql.append("ACT.").append(W83bActasBD.fechaActualizacion).append(" IS NULL) AND ");
			strSql.append("ACT.").append(W83bActasBD.numActa).append("=VISTA.").append(W83bActasBD.numActa).append(" AND ");
			strSql.append("ACT.").append(W83bActasBD.anyoActa).append("=VISTA.").append(W83bActasBD.anyoActa).append(" AND ");
			strSql.append("ACT.").append(W83bDatosMinisterioBD.C_TERRIT_016).append("=VISTA.").append(W83bDatosMinisterioBD.C_TERRIT_016).append(" AND ");
			strSql.append("ACT.").append(W83bActasBD.validada).append("=1)");
			
			strSql.append(" INTERSECT ");
			
			strSql.append("SELECT ").append(W83bDatosMinisterioBD.N_ACTA_016).append(",").append(W83bDatosMinisterioBD.C_TERRIT_016);
			strSql.append(",").append(W83bDatosMinisterioBD.ANO_ACTA_016).append(",").append(W83bDatosMinisterioBD.C_COLEG_024);
			strSql.append(",NVL (").append(W83bDatosMinisterioBD.N_VOTOS_024).append(" , 0) AS ").append(W83bDatosMinisterioBD.N_VOTOS_024);
			strSql.append(",(NVL (").append(W83bDatosMinisterioBD.N_DELH_024).append(" , 0) + ");
			strSql.append("NVL (").append(W83bDatosMinisterioBD.N_DELM_024).append(" , 0)) AS ").append(W83bDatosMinisterioBD.N_DELH_024);
			strSql.append(",").append(W83bDatosMinisterioBD.C_SINDI_024);
			strSql.append(",").append(W83bDatosMinisterioBD.CMADRID_019).append(" FROM w83bdatosministeriosind VISTA");
			strSql.append(" WHERE VISTA.");
			strSql.append(W83bDatosMinisterioBD.F_ELECC_016).append(" >= TO_DATE('");
			strSql.append(param.getFechaEleccion()).append("',?) ");
			strSql.append(" AND ");
			strSql.append("VISTA.").append(W83bActasBD.versionActa);
			strSql.append("=(SELECT MAX(ACT.").append(W83bActasBD.versionActa).append(")");
			strSql.append(" FROM ");
			strSql.append(W83bDatosMinisterioBD.actas).append(" ACT WHERE (ACT.").append(W83bActasBD.fechaActualizacion).append("<=TO_DATE('");
			strSql.append(param.getFechaRegistro());
			strSql.append("',?)");
			strSql.append(" OR ");
			strSql.append("ACT.").append(W83bActasBD.fechaActualizacion).append(" IS NULL) AND ");
			strSql.append("ACT.").append(W83bActasBD.numActa).append("=VISTA.").append(W83bActasBD.numActa).append(" AND ");
			strSql.append("ACT.").append(W83bActasBD.anyoActa).append("=VISTA.").append(W83bActasBD.anyoActa).append(" AND ");
			strSql.append("ACT.").append(W83bDatosMinisterioBD.C_TERRIT_016).append("=VISTA.").append(W83bDatosMinisterioBD.C_TERRIT_016).append(" AND ");
			strSql.append("ACT.").append(W83bActasBD.validada).append("=1)");
			
			strSql.append(" INTERSECT ");
			
			strSql.append("SELECT ").append(W83bDatosMinisterioBD.N_ACTA_016).append(",").append(W83bDatosMinisterioBD.C_TERRIT_016);
			strSql.append(",").append(W83bDatosMinisterioBD.ANO_ACTA_016).append(",").append(W83bDatosMinisterioBD.C_COLEG_024);
			strSql.append(",NVL (").append(W83bDatosMinisterioBD.N_VOTOS_024).append(" , 0) AS ").append(W83bDatosMinisterioBD.N_VOTOS_024);
			strSql.append(",(NVL (").append(W83bDatosMinisterioBD.N_DELH_024).append(" , 0) + ");
			strSql.append("NVL (").append(W83bDatosMinisterioBD.N_DELM_024).append(" , 0)) AS ").append(W83bDatosMinisterioBD.N_DELH_024);
			strSql.append(",").append(W83bDatosMinisterioBD.C_SINDI_024);
			strSql.append(",").append(W83bDatosMinisterioBD.CMADRID_019).append(" FROM w83bdatosministeriosind VISTA");
			strSql.append(" WHERE VISTA.");
			strSql.append(W83bDatosMinisterioBD.F_ELECC_016).append(" <= TO_DATE('");
			strSql.append(param.getFechaEleccionHasta()).append("',?) ");
			strSql.append(" AND ");
			strSql.append("VISTA.").append(W83bActasBD.versionActa);
			strSql.append("=(SELECT MAX(ACT.").append(W83bActasBD.versionActa).append(")");
			strSql.append(" FROM ");
			strSql.append(W83bDatosMinisterioBD.actas).append(" ACT WHERE (ACT.").append(W83bActasBD.fechaActualizacion).append("<=TO_DATE('");
			strSql.append(param.getFechaRegistro());
			strSql.append("',?)");
			strSql.append(" OR ");
			strSql.append("ACT.").append(W83bActasBD.fechaActualizacion).append(" IS NULL) AND ");
			strSql.append("ACT.").append(W83bActasBD.numActa).append("=VISTA.").append(W83bActasBD.numActa).append(" AND ");
			strSql.append("ACT.").append(W83bActasBD.anyoActa).append("=VISTA.").append(W83bActasBD.anyoActa).append(" AND ");
			strSql.append("ACT.").append(W83bDatosMinisterioBD.C_TERRIT_016).append("=VISTA.").append(W83bDatosMinisterioBD.C_TERRIT_016).append(" AND ");
			strSql.append("ACT.").append(W83bActasBD.validada).append("=1)");

			strSql.append(" INTERSECT ");
			
			strSql.append("SELECT ").append(W83bDatosMinisterioBD.N_ACTA_016).append(",").append(W83bDatosMinisterioBD.C_TERRIT_016);
			strSql.append(",").append(W83bDatosMinisterioBD.ANO_ACTA_016).append(",").append(W83bDatosMinisterioBD.C_COLEG_024);
			strSql.append(",NVL (").append(W83bDatosMinisterioBD.N_VOTOS_024).append(" , 0) AS ").append(W83bDatosMinisterioBD.N_VOTOS_024);
			strSql.append(",(NVL (").append(W83bDatosMinisterioBD.N_DELH_024).append(" , 0) + ");
			strSql.append("NVL (").append(W83bDatosMinisterioBD.N_DELM_024).append(" , 0)) AS ").append(W83bDatosMinisterioBD.N_DELH_024);
			strSql.append(",").append(W83bDatosMinisterioBD.C_SINDI_024);
			strSql.append(",").append(W83bDatosMinisterioBD.CMADRID_019).append(" FROM w83bdatosministeriosind VISTA");
			strSql.append(" WHERE ");
			strSql.append("  (VISTA.").append(W83bDatosMinisterioBD.f_baja_016).append(" IS  NULL OR VISTA.");
			strSql.append(W83bDatosMinisterioBD.f_baja_016).append(" > TO_DATE ('").append(param.getFechaEleccionHasta());
			strSql.append("', ?))"); 
			strSql.append(" AND ");
			strSql.append("VISTA.").append(W83bActasBD.versionActa);
			strSql.append("=(SELECT MAX(ACT.").append(W83bActasBD.versionActa).append(")");
			strSql.append(" FROM ");
			strSql.append(W83bDatosMinisterioBD.actas).append(" ACT WHERE (ACT.").append(W83bActasBD.fechaActualizacion).append("<=TO_DATE('");
			strSql.append(param.getFechaRegistro());
			strSql.append("',?)");
			strSql.append(" OR ");
			strSql.append("ACT.").append(W83bActasBD.fechaActualizacion).append(" IS NULL) AND ");
			strSql.append("ACT.").append(W83bActasBD.numActa).append("=VISTA.").append(W83bActasBD.numActa).append(" AND ");
			strSql.append("ACT.").append(W83bActasBD.anyoActa).append("=VISTA.").append(W83bActasBD.anyoActa).append(" AND ");
			strSql.append("ACT.").append(W83bDatosMinisterioBD.C_TERRIT_016).append("=VISTA.").append(W83bDatosMinisterioBD.C_TERRIT_016).append(" AND ");
			strSql.append("ACT.").append(W83bActasBD.validada).append("=1)");
			params=new ArrayList();
			params.add(formato);params.add(formato);params.add(formato);params.add(formato);
			params.add(formato);params.add(formato);params.add(formato);params.add(formato);		
			List listadoSindicatos = W83bDataBase.executeQuery(strSql.toString(),params,W83bDatosMinisterioBean.class,param.getUsuarioBean(), "tercera");
			
			W83bDatosMinisterioBean elSindicato = new W83bDatosMinisterioBean();
			HashMap mapa3 = new HashMap();
			for(int i=0;i<listadoSindicatos.size();i++){
				elSindicato = (W83bDatosMinisterioBean)listadoSindicatos.get(i);
				mapa3.put(elSindicato.getCodSindicato()+elSindicato.getColegio24()+elSindicato.getTerritorio()+elSindicato.getAnyoActa()+elSindicato.getNumActa(), elSindicato);
			}			
			resultado.add(mapa3);
			return resultado;			
		}	
		
	}

	/**
	 * comprobarAnualDatosMinisterio.
	 * 
	 * @param param the new parametro
	 * @return List the new baja
	 * @throws Exception the exception
	 */
	public java.util.List comprobarAnualDatosMinisterio(w83b.w83bBeans.W83bDatosMinisterioBean param) throws Exception{
		
		
		StringBuffer strSql = new StringBuffer(W83bClsConstantes.CUARENTA);
		List params = new ArrayList();
		String fechaResultado = param.getFechaResultado();
		String mes = fechaResultado.substring(W83bClsConstantes.TRES,W83bClsConstantes.CINCO);
		String anyo = fechaResultado.substring(W83bClsConstantes.SEIS,W83bClsConstantes.DIEZ);
		
		W83bDatosMinisterioBean criteriosFiltro =  new W83bDatosMinisterioBean();
		criteriosFiltro.setFechaEleccion(param.getFechaEleccionHasta());
		criteriosFiltro.setFechaRegistro(param.getFechaRegistro());
		strSql.append("SELECT "); 
		strSql.append(W83bDatosMinisterioBD.CIERRE_01_042).append(", ");
		strSql.append(W83bDatosMinisterioBD.CIERRE_20_042).append(", ");
		strSql.append(W83bDatosMinisterioBD.CIERRE_48_042);		
		strSql.append(" FROM ").append(W83bDatosMinisterioBD.cierreView);
		strSql.append(" WHERE ");		
		strSql.append(W83bDatosMinisterioBD.MES_CIERRE_042).append("=").append(mes);
		strSql.append(" AND ");
		strSql.append(W83bDatosMinisterioBD.ANO_CIERRE_042).append("=").append(anyo);
		strSql.append(" AND ").append(W83bDatosMinisterioBD.CIERRE_01_042).append("= 'S'");
		strSql.append(" AND ");
		strSql.append(W83bDatosMinisterioBD.CIERRE_20_042).append("= 'S'");
		strSql.append(" AND ");
		strSql.append(W83bDatosMinisterioBD.CIERRE_48_042).append("= 'S'");
		
		List cierre = W83bDataBase.executeQuery(strSql.toString(),params,W83bDatosMinisterioBean.class,param.getUsuarioBean(), null);
		//tengo que sumar de la 24, por sindicato, todos los delegados que pertenezcana las actas que cumplen con las fechas.
		if (cierre.isEmpty()){
			return cierre;
		}else{
			strSql.delete(0, strSql.length()); 
			strSql.append("SELECT ");
			strSql.append("VISTA.").append(W83bActasBD.numActa).append(",");
			strSql.append("VISTA.").append(W83bActasBD.anyoActa).append(",");
			strSql.append("VISTA.").append(W83bActasBD.versionActa).append(",");
			strSql.append("VISTA.").append(W83bDatosMinisterioBD.C_SINDI_024).append(",");
			strSql.append("VISTA.").append(W83bDatosMinisterioBD.DESC_019).append(",");
			strSql.append("VISTA.").append(W83bDatosMinisterioBD.SIGLAS_019).append(",");
			strSql.append("VISTA.").append(W83bDatosMinisterioBD.C_TERRIT_016).append(",");
			strSql.append("VISTA.").append("N_DEL").append(",");
			strSql.append("VISTA.").append(W83bDatosMinisterioBD.N_DELM_024).append(",");
			strSql.append("VISTA.").append("C_CONV_016").append(",");
			strSql.append("VISTA.").append(W83bDatosMinisterioBD.CMADRID_019);
			strSql.append(" FROM ");
			strSql.append(W83bDatosMinisterioBD.ministerioanual).append(" VISTA "); 	
			strSql.append(" WHERE ");
			strSql.append(W83bDatosMinisterioBD.FREGDEF_016).append(" <= TO_DATE('").append(param.getFechaRegistro());
			strSql.append("','dd/mm/yyyy') AND (").append(W83bDatosMinisterioBD.F_ELECC_016).append(" BETWEEN TO_DATE('");
			strSql.append(param.getFechaEleccion()).append("','dd/mm/yyyy') AND TO_DATE('").append(param.getFechaEleccionHasta()).append("','dd/mm/yyyy')) ");
			strSql.append(" AND (");
			strSql.append(W83bActasBD.fechaBaja);
			strSql.append(" IS NULL OR (");
			strSql.append(W83bActasBD.fechaBaja);
			strSql.append(" IS NOT NULL AND ");
			strSql.append(W83bActasBD.fechaBaja);
			strSql.append("> TO_DATE ('").append(param.getFechaEleccionHasta()).append("','dd/mm/yyyy'))) ");
			strSql.append(" AND ");
			strSql.append("VISTA.").append(W83bActasBD.versionActa);
			strSql.append("=(SELECT MAX(ACT.").append(W83bActasBD.versionActa).append(")");
			strSql.append(" FROM ");
			strSql.append(W83bDatosMinisterioBD.actas).append(" ACT WHERE (ACT.").append(W83bActasBD.fechaActualizacion).append("<=TO_DATE('");
			strSql.append(param.getFechaRegistro());
			strSql.append("','dd/mm/yyyy')");
			strSql.append(" OR ");
			strSql.append("ACT.").append(W83bActasBD.fechaActualizacion).append(" IS NULL) AND ");
			strSql.append("ACT.").append(W83bActasBD.numActa).append("=VISTA.").append(W83bActasBD.numActa).append(" AND ");
			strSql.append("ACT.").append(W83bActasBD.anyoActa).append("=VISTA.").append(W83bActasBD.anyoActa).append(" AND ");
			strSql.append("ACT.").append(W83bDatosMinisterioBD.C_TERRIT_016).append("=VISTA.").append(W83bDatosMinisterioBD.C_TERRIT_016).append(" AND ");
			strSql.append("ACT.").append(W83bActasBD.validada).append("=1)");

			strSql.append(" ORDER BY ").append(W83bDatosMinisterioBD.C_SINDI_024).append(",").append(W83bDatosMinisterioBD.C_TERRIT_016);
			
			List listadoActas = W83bDataBase.executeQuery(strSql.toString(),params,W83bDatosMinisterioBean.class,param.getUsuarioBean(), "anual");
				
			
			if (listadoActas.isEmpty()){
				W83bDatosMinisterioBean elActa = new W83bDatosMinisterioBean();
				listadoActas.add(elActa);
				return listadoActas;
			}else{
				//en la última posición meto los criterios del filtro para pintarlos en el excel
				listadoActas.add(criteriosFiltro);
				return listadoActas;
			}
		}	
		
	}
}
